#!/usr/bin/python3
# -*- coding: UTF-8 -*-

# 高阶函数英文叫Higher-order function

# 函数调用
print(abs(-10))
# 函数本身
print(abs)

# 函数本身也可以赋值给变量，即：变量可以指向函数
f = abs
print(f(-99))
print(f)

# 函数名其实就是指向函数的变量，可以重新赋值
# 既然变量可以指向函数，函数的参数能接收变量，那么一个函数就可以接收另一个函数作为参数，
# 这种函数就称之为高阶函数
def add(x, y, f):
    return f(x) + f(y)

print(add(3, -9, f))
# 把函数作为参数传入，这样的函数称为高阶函数，函数式编程就是指这种高度抽象的编程范式



